#include <ESP8266WiFi.h>

const char* ssid="67";  //这里输入的是WiFi名称和密码
const char* password="33855922";

WiFiServer server(80);  //开启这块版子的80端口

void setup(){
	  Serial.begin(115200);  //；上传速度为115200
	  delay(10);
	  pinMode(2,OUTPUT);   //将板子的D4设为输出
	  digitalWrite(2,0);   //先将D4设为低电平

	//板子开始连接WiFi
	Serial.println();  //打印空格
	Serial.println();  //打印空格
	Serial.print("Connecting to");  //打印连接完成
	Serial.println(ssid);
	WiFi.begin(ssid,password);   //
	while(WiFi.status()!=WL_CONNECTED){
	delay(500);
	Serial.print(".");
	}
	Serial.println("");   //连接成功后会在这里跳出连接成功
	Serial.println("WiFi connected");


	server.begin();  //服务器启动
	Serial.println("Server started");
	Serial.println(WiFi.localIP());  //打印出该服务器被分配到的IP
}
	void loop(){  //确定是否还在连线，不是的话就跳出去
	WiFiClient client= server.available();
	if(!client){
	return;
}
	//等待客户端发送过来的信息
	Serial.println("new client");
	while(!client.available()){
	delay(1);
	}
	//收到传过来的信息后，将信息存成req
	String req = client.readStringUntil('\r');
	Serial.println(req);  //印出收到的信息
	client.flush();  

	//开始对比收到的信息来决定下一步
	int val;
	if(req.indexOf("/gpio/0")!=-1)  //如果收到/gpio/0
	val =0;
	else if(req.indexOf("/gpio/1")!=-1) //如果收到/gpio/1
	val = 1;
	else {  //如果收到其他 
	Serial.println("invalid request");
	client.stop();
	return;
	}
	digitalWrite(2,val);  //依照收到的信息改变D4脚位的高低电平，从而控制灯的亮暗
	client.flush();
	//给客户端发送html
	String s = "HTTP/1.1 200 0K\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\nGPIO is now";
	s +=(val)?"high":"low";
	s+="</html>\n";
	//发送给客户端
	client.print(s);
	delay(1);
	Serial.println("Client disonnected");
}